package com.grupobbva.iici.service.impl;

import java.util.List;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.grupobbva.iici.serializable.Corporativa;
import com.grupobbva.iici.service.CorporativaService;
import com.grupobbva.iici.util.FiltroDTO;

@Service("corporativaService")
@Transactional(readOnly=true)
public class CorporativaServiceImpl extends BaseServiceImpl implements CorporativaService {


	private static Logger log = Logger.getLogger(CorporativaServiceImpl.class);
	
//	@Override
	public Corporativa obtenerPorCodigo(String codigo) {
		log.info("obtenerPorCodigo ::"+codigo);
		String multitabla=codigo.substring(0,3);
		String elemento=codigo.substring(3,codigo.length());
		log.info("multitabla >"+multitabla);
		log.info("elemento >"+elemento);
		
		FiltroDTO filtroDTO=new FiltroDTO();
		filtroDTO.addParametro("codMult",multitabla );
		filtroDTO.addParametro("codEle", elemento);
		List lst=obtenerEntidadesPorFiltros(Corporativa.class, filtroDTO);
		if(lst!=null){
			return (Corporativa)lst.get(0);
		}
		return null;
	}
	
	public Corporativa obtenerPorCodigo(String tabla,String codigo) {
	
		log.info("obtenerPorCodigo multitabla >"+tabla);
		log.info("obtenerPorCodigo elemento >"+codigo);
		
		FiltroDTO filtroDTO=new FiltroDTO();
		filtroDTO.addParametro("codMult",tabla );
		filtroDTO.addParametro("codEle", codigo);
		List lst=obtenerEntidadesPorFiltros(Corporativa.class, filtroDTO);
		if(lst!=null){
			return (Corporativa)lst.get(0);
		}
		return null;
	}
	
	public List<Corporativa> getEstado() {

			FiltroDTO filtroDTO=new FiltroDTO();
			filtroDTO.addParametro("codMult","T03");
			
			
			List lista =obtenerEntidadesPorFiltros(Corporativa.class, filtroDTO);
			
		return lista;
	}

//	@Override
	public List<Corporativa> obtenerCatalogoMultitabla(String codigo) {
		FiltroDTO filtroDTO=new FiltroDTO();
		filtroDTO.addParametro("codMult",codigo);
		List lst=obtenerEntidadesPorFiltros(Corporativa.class, filtroDTO);
		return lst;
	}

	@Transactional(rollbackFor=Exception.class)
	public void modificar(Corporativa corporativa) {
		Corporativa corporativaEditar=obtenerPorCodigo(corporativa.getCodMult(), corporativa.getCodEle());
		corporativaEditar.setValor1(corporativa.getValor1());
		corporativaEditar.setValor2(corporativa.getValor2());
		corporativaEditar.setValor3(corporativa.getValor3());
		corporativaEditar.setValor4(corporativa.getValor4());
		commonDAO.modificar(corporativaEditar);
	}

	
	
}
